package com.yunxin.download.server.infra.support.file.export.context;


import java.io.OutputStream;
import java.util.List;
import java.util.Map;

/**
 * @author zero°
 * @since 2023-06-15
 */
public interface FileExportContext {

    /**
     * 追加导入数据
     * @param data data
     */
    void appendData(List<Object> data);

    /**
     * 追加导入数据(map对象)
     * @param data     data
     */
    void appendDataByMap(List<Map<String, Object>> data,Integer isView);

    /**
     * 导出到oss
     * @param fileTypeSuffix fileTypeSuffix
     * @param userName userName
     * @param fileName fileName
     * @return String
     */
    String export2Oss(String fileTypeSuffix, String userName, String fileName);

    /**
     * 导出到本地
     * @param filename filename
     * @param fileTypeSuffix fileTypeSuffix
     * @param url url
     */
    void export2Local(String filename, String fileTypeSuffix, String url);

    /**
     * oss文件下载
     * @param ossFileKey   oss文件Key
     * @param outputStream outputStream
     */
    void downloadOssExportFile(String ossFileKey, OutputStream outputStream);

    /**
     * 释放资源
     */
    void close();

    /**
     * 获取导出文件类型
     * @return String
     */
    String getFileTypeSuffix();


}
